package bancosys.tec.security.impl.dao;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import bancosys.tec.persist.dao.BaseDAO;
import bancosys.tec.persist.dao.BeanNotFoundException;
import bancosys.tec.security.impl.domain.User;

/**
 * DAO para {@link User}.
 * 
 * @author Marco
 */
public class UserDAO extends BaseDAO<User> {

    /**
     * Busca pelo usuário a partir do nome do usuário.
     * 
     * @param username nome do usuário.
     * @return usuário.
     * @throws BeanNotFoundException caso não encontre usuário cadastrado com esse nome.
     */
    public User findUser(String username) throws BeanNotFoundException {
        Criteria criteria = super.getSession().createCriteria(User.class);
        criteria.add(Restrictions.eq("username", username));
        return super.executeSingleQuery(criteria);
    }
}
